Computer graphics is the art and science of generating pictures, images, or other graphical or pictorial information with a computer. Many of the current graphics systems are implemented through the use of a set of interfaces, such as MICROSOFT's Direct3D interface, OpenGL, etc., that offer control of multimedia hardware (e.g., a graphics accelerator or graphics processing unit (GPU)) on a computer running a particular operating system, such as MICROSOFT WINDOWS, among others. The generation of pictures or images is commonly called rendering, and the nuts and bolts of such operations are primarily implemented through a graphics accelerator. Generally, in three-dimensional (3D) computer graphics, geometry that represents surfaces (or volumes) of objects in a scene is translated into pixels (picture elements), stored in a frame buffer, and then displayed on a display device. Each object or group of objects may have specific visual properties related to the appearance of surfaces (materials, reflectance, shape, textures, etc.) which may be defined as a rendering context for the object or group of objects.
Consumer demand for increasing sophistication in controls and features for games and other multimedia products for which computer graphics are used, as well as the desire for more realism in generated images, engenders improvements in processing speed and power. Various standards have been developed to improve the visual quality of generated images while consuming fewer bits. One of these standards, the H.264 specification (also known as the ISO Motion Picture Experts Group (MPEG)-4 part 10), is a high compression digital video codec standard. An H.264 compliant codec can encode video with approximately three times fewer bits than comparable MPEG-2 encoders while retaining similar video quality. The H.264 specification provides for two types of entropy encoding processes, including context-adaptive binary arithmetic coding (CABAC) and context-adaptive variable length coding (CAVLC).
Many different hardware-only or software-only solutions have been provided to help address these continually changing needs, resulting in higher inventories, rapidly obsolete technology, and inflexibility in design.